﻿using Dapper;
using Estsh.Core.Base;
using Estsh.Core.Model.Extend.Models;
using Estsh.Core.Models;
using Estsh.Core.Repositories;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Estsh.Core.Wms.IRepositories
{
    public interface INCInStockRepository : IBaseRepository<BaseEntity>
    {
        public List<WmsMoveHeader> GetNCInStockOrderList(string orderNo);
        public List<WmsMoveHeader> GetNCInStockOrderListByOrderNo(string orderNo);
        public List<SysLocate> GetLocateByLocateName(string locateName);
        public SysStock GetStocQtySumByLocateName(string locateName);
        public List<SysStock> GetStocInfoByCartonNo(string cartonNo);
        public List<SysLocate> GetLocatePartByLocateName(string locateName);
        public List<SysLocate> GetLocateZoneByLocateName(string locateName);
        public List<WmsMoveHeader> GetMoveHeaderByOrderNo(string orderNo);
        public List<WmsMoveDetail_Extend> GetFinishMoveDetailByOrderNo(string orderNo);
        public List<WmsMoveDetail_Extend> GetFinishMoveDetailByOrderNoAutoPostBack(string orderNo);

		public SysPart GetPartNOInfoByPartNo(string partNo);
        public List<WmsMoveDetail> GetMoveDetailByOrderNoPartNo(string orderNo, string partNo);
        public List<WmsMoveSn> GetMoveSnByOrderNo(string orderNo);
        public List<WmsMoveSn> GetMoveSnByOrderNoCarton(string orderNo, string cartonNo);
        public List<WmsMoveHeader> GetMoveHeaderInfoByOrderNo(string orderNo);
        public List<WmsMoveHeader> GetMoveHeaderQtySumByOrderNo(string orderNo);
        public int SQLTransaction(List<string> sqlStrings, List<DynamicParameters> parameterList);
    }
}
